home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 6 / CU Amiga Magazine's Super CD-ROM 06 (1996)(EMAP Images)(GB)(Track 1 of 4)[!][issue 1997-01].iso / cucd / prog / mui / modula / txt / muimacros.def < prev    next >
Text File  |  1996-08-14  |  21KB  |  662 lines

  1. DEFINITION MODULE MuiMacros;
  2.  
  3. (*$ DEFINE Locale:= TRUE *)
  4. (*$ DEFINE MUIOBSOLETE := FALSE *)
  5. (*$ DEFINE MUI3        := TRUE  *)
  6.  
  7. (****************************************************************************
  8. **
  9. ** $VER: MuiMacros.def 3.6 (13.8.96)
  10. **
  11. ** The following updates have been done by
  12. **
  13. **   Olaf "Olf" Peters <olf@informatik.uni-bremen.de>
  14. **
  15. ** $HISTORY:
  16. **
  17. **  13.8.96  3.6   : updated for MUI 3.6 release
  18. **  21.2.96  3.3   : updated for MUI 3.3 release
  19. **  23.1.96  3.2   : updated for MUI 3.2 release
  20. ** 18.11.95  3.1   : updated for MUI 3.1 release
  21. **  17.9.95  2.3   : updated to MUI 2.3
  22. **
  23. ****************************************************************************)
  24.  
  25. (****************************************************************************
  26. **
  27. **      MUI Macros 2.0
  28. **
  29. **      Converted to Modula by Christian "Kochtopf" Scholz
  30. **
  31. **      refer also to MuiMacros.mod if you want to know, how they are made.
  32. **
  33. **      $Id: MuiMacros.def,v 1.9 1996/08/14 23:23:49 olf Exp olf $
  34. **
  35. **/// "$Log: MuiMacros.def,v $
  36. # Revision 1.9  1996/08/14  23:23:49  olf
  37. # bumped to MUI 3.6
  38. #
  39. # Revision 1.8  1996/08/14  01:39:07  olf
  40. # MUI 3.5
  41. #
  42. # Revision 1.7  1996/02/21  17:43:01  olf
  43. # MUI 3.3 release
  44. #
  45. # Revision 1.6  1996/01/25  20:24:36  olf
  46. # revised for MUI 3.2
  47. #
  48. # Revision 1.5  1995/12/15  16:37:53  olf
  49. # - applied changes from Stefan Schulz
  50. # - cleanup of IMPORT section
  51. #"
  52. # Revision 1.4  1995/12/04  17:30:31  olf
  53. # MUI-Interfaces 3.1.1
  54. #
  55. # Revision 1.3  1995/11/18  16:46:18  olf
  56. # MUI Release 3.1
  57. #
  58. # Revision 1.2  1995/10/23  17:06:34  olf
  59. # *** empty log message ***
  60. #
  61. # Revision 1.1  1995/09/25  15:32:52  olf
  62. # Initial revision
  63. #
  64. # Revision 1.8  1994/08/18  18:52:20  Kochtopf
  65. # changed popbutton
  66. #
  67. # Revision 1.7  1994/08/11  16:59:45  Kochtopf
  68. # *** empty log message ***
  69. #
  70. # Revision 1.6  1994/06/27  22:06:41  Kochtopf
  71. # put some Macros in MUIObsolete-Parenthesis, because one should
  72. # now use mMakeObj.
  73. #
  74. # Revision 1.5  1994/02/15  21:14:05  Kochtopf
  75. # neue Macros fuer Pop* und Register definiert,
  76. # HCenter und VCenter neu
  77. # PopUp entfernt und durch PopButton ersetzt.
  78. # neue Label-Macros LLabel eingefuehrt (aus mui.h)
  79. #
  80. # Revision 1.4  1994/02/09  14:50:03  Kochtopf
  81. # Versionsnummer in 2.0 geaendert.
  82. #
  83. **\\\
  84. ****************************************************************************
  85. ** Class Tree
  86. ****************************************************************************
  87. **
  88. ** rootclass                    (BOOPSI's base class)
  89. ** +--Notify                   (implements notification mechanism)
  90. ** !  +--Family                (handles multiple children)
  91. ** !  !  +--Menustrip          (describes a complete menu strip)
  92. ** !  !  +--Menu               (describes a single menu)
  93. ** !  !  \--Menuitem           (describes a single menu item)
  94. ** !  +--Application           (main class for all applications)
  95. ** !  +--Window                (main class for all windows)
  96. ** !  !  \--Aboutmui           (About window of MUI preferences)
  97. ** !  +--Area                  (base class for all GUI elements)
  98. ** !     +--Rectangle          (spacing object)
  99. ** !     +--Balance            (balancing separator bar)
  100. ** !     +--Image              (image display)
  101. ** !     +--Bitmap             (draws bitmaps)
  102. ** !     !  \--Bodychunk       (makes bitmap from ILBM body chunk)
  103. ** !     +--Text               (text display)
  104. ** !     +--Gadget             (base class for intuition gadgets)
  105. ** !     !  +--String          (string gadget)
  106. ** !     !  +--Boopsi          (interface to BOOPSI gadgets)
  107. ** !     !  \--Prop            (proportional gadget)
  108. ** !     +--Gauge              (fule gauge)
  109. ** !     +--Scale              (percentage scale)
  110. ** !     +--Colorfield         (field with changeable color)
  111. ** !     +--List               (line-oriented list)
  112. ** !     !  +--Floattext       (special list with floating text)
  113. ** !     !  +--Volumelist      (special list with volumes)
  114. ** !     !  +--Scrmodelist     (special list with screen modes)
  115. ** !     !  \--Dirlist         (special list with files)
  116. ** !     +--Numeric            (base class for slider gadgets)
  117. ** !     !  +--Knob            (turning knob)
  118. ** !     !  +--Levelmeter      (level display)
  119. ** !     !  +--Numericbutton   (space saving popup slider)
  120. ** !     !  \--Slider          (traditional slider)
  121. ** !     +--Framedisplay       (private)
  122. ** !     !  \--Popframe        (private)
  123. ** !     +--Imagedisplay       (private)
  124. ** !     !  \--Popimage        (private)
  125. ** !     +--Pendisplay         (displays a pen specification)
  126. ** !     !  \--Poppen          (popup button to adjust a pen spec)
  127. ** !     +--Group              (groups other GUI elements)
  128. ** !        +--Mccprefs        (private)
  129. ** !        +--Register        (handles page groups with titles)
  130. ** !        !  \--Penadjust    (group to adjust a pen)
  131. ** !        +--Settingsgroup   (private)
  132. ** !        +--Settings        (private)
  133. ** !        +--Frameadjust     (private)
  134. ** !        +--Imageadjust     (private)
  135. ** !        +--Virtgroup       (handles virtual groups)
  136. ** !        +--Scrollgroup     (virtual groups with scrollbars)
  137. ** !        +--Scrollbar       (traditional scrollbar)
  138. ** !        +--Listview        (listview)
  139. ** !        +--Radio           (radio button)
  140. ** !        +--Cycle           (cycle gadget)
  141. ** !        +--Coloradjust     (several gadgets to adjust a color)
  142. ** !        +--Palette         (complete palette gadget)
  143. ** !        +--Popstring       (base class for popup objects)
  144. ** !           +--Popobject    (popup aynthing in a separate window)
  145. ** !           !  +--Poplist   (popup a simple listview)
  146. ** !           !  \--Popscreen (popup a list of public screens)
  147. ** !           \--Popasl       (popup an asl requester)
  148. ** +--Semaphore                (semaphore equipped objects)
  149. **    +--Applist               (private)
  150. **    +--Dataspace             (handles general purpose data spaces)
  151. **       \--Configdata         (private)
  152. **
  153. ***************************************************************************)
  154.  
  155. FROM    SYSTEM   IMPORT ADDRESS, ADR, TAG;
  156. FROM    MuiD     IMPORT APTR, StrPtr ;
  157.  
  158. IMPORT
  159.   m  : MuiD,
  160.   ml : MuiL,
  161.   ud : UtilityD ;
  162.  
  163. TYPE    ShortString = ARRAY[0..3] OF CHAR;  (* for MakeID *)
  164.  
  165.         (* Here some Types you have to use, IF you want to fill the
  166.            array, the ListDisplayHook gets as parameter and which the hook
  167.            has to fill *)
  168.  
  169.         STRING      = ARRAY[0..128] OF CHAR;
  170.         STRPTR      = POINTER TO STRING;
  171.         STRARR      = ARRAY[0..10] OF STRPTR; (* set 10 to the number of columns you have in your list *)
  172.         STRARRPTR   = POINTER TO STRARR;
  173.  
  174.         (* Use it the following way :
  175.  
  176.         Your Hookfunction :
  177.  
  178.         PROCEDURE dspfunc(hook : HookPtr; array : APTR; entry : APTR) : APTR;
  179.  
  180.             BEGIN
  181.                 CAST(STRARRPTR,array)^[0]:=ADR(first string);
  182.                 CAST(STRARRPTR,array)^[1]:=ADR(second string);
  183.                 ...
  184.                 RETURN 0;
  185.             END dspfunc;
  186.  
  187.         As you see, it is the same as string-arrays in C  *)
  188.  
  189.  
  190.         (* Here your PROCEDURE-Prototype for your hookfunction : *)
  191.  
  192.         HookDef     = PROCEDURE(ud.HookPtr, APTR, APTR):APTR;
  193.  
  194. (*
  195. **  MUI - Object Generation
  196. **
  197. **  These Macros are equal to the C-Macros which can be found in mui.h
  198. **  But notice, that you have a different usage of these :
  199. **
  200. **  Instead of
  201. **
  202. **      app = ApplicationObject,
  203. **
  204. **              ...
  205. **
  206. **            End;
  207. **
  208. **  you now write :
  209. **
  210. **      app := ApplicationObject(TAG(buffer,    (* TAG from SYSTEM *)
  211. **
  212. **              ...
  213. **
  214. **             tagEnd));    (* tagEnd imported from UtilityD *)
  215. **
  216. **  Also you can't use :
  217. **
  218. **      app := ApplicationObject(TAG(buffer,
  219. **
  220. **              ...
  221. **  ====>            window:=WindowObject(TAG(buffer, ... , tagEnd)),
  222. **              ...
  223. **
  224. **             tagEnd));
  225. **
  226. **  instead of this, you have to define your Window-Object before the
  227. **  Application-Object and then use the pointer in the App-Definition :
  228. **
  229. **      window := WindowObject(TAG(buffer, ... , tagEnd)),
  230. **
  231. **      app := ApplicationObject(TAG(buffer,
  232. **
  233. **              ...
  234. **                   window,
  235. **              ...
  236. **
  237. **             tagEnd));
  238. **
  239. **  So you can't define a whole application with one command if you need
  240. **  the pointer of some objects later on (for a Notify, etc.)
  241. **
  242. *)
  243.  
  244. CONST   Child           = m.maGroupChild;
  245.         SubWindow       = m.maApplicationWindow;
  246.         WindowContents  = m.maWindowRootObject;
  247.  
  248. PROCEDURE WindowObject(tags : ud.TagItemPtr) : APTR;
  249. PROCEDURE ImageObject(tags : ud.TagItemPtr) : APTR;
  250. PROCEDURE BitmapObject(tags : ud.TagItemPtr) : APTR;
  251. PROCEDURE BodychunkObject(tags : ud.TagItemPtr) : APTR;
  252. PROCEDURE NotifyObject(tags : ud.TagItemPtr) : APTR;
  253. PROCEDURE ApplicationObject(tags : ud.TagItemPtr) : APTR;
  254. PROCEDURE TextObject(tags : ud.TagItemPtr) : APTR;
  255. PROCEDURE RectangleObject(tags : ud.TagItemPtr) : APTR;
  256. PROCEDURE ListObject(tags : ud.TagItemPtr) : APTR;
  257. PROCEDURE PropObject(tags : ud.TagItemPtr) : APTR;
  258. PROCEDURE StringObject(tags : ud.TagItemPtr) : APTR;
  259. PROCEDURE ScrollbarObject(tags : ud.TagItemPtr) : APTR;
  260. PROCEDURE ListviewObject(tags : ud.TagItemPtr) : APTR;
  261. PROCEDURE RadioObject(tags : ud.TagItemPtr) : APTR;
  262. PROCEDURE VolumelistObject(tags : ud.TagItemPtr) : APTR;
  263. PROCEDURE FloattextObject(tags : ud.TagItemPtr) : APTR;
  264. PROCEDURE DirlistObject(tags : ud.TagItemPtr) : APTR;
  265. PROCEDURE SliderObject(tags : ud.TagItemPtr) : APTR;
  266. PROCEDURE CycleObject(tags : ud.TagItemPtr) : APTR;
  267. PROCEDURE GaugeObject(tags : ud.TagItemPtr) : APTR;
  268. PROCEDURE ScaleObject(tags : ud.TagItemPtr) : APTR;
  269. PROCEDURE BoopsiObject(tags : ud.TagItemPtr) : APTR;
  270. PROCEDURE ColorfieldObject(tags : ud.TagItemPtr) : APTR;
  271. PROCEDURE ColoradjustObject(tags : ud.TagItemPtr) : APTR;
  272. PROCEDURE PaletteObject(tags : ud.TagItemPtr) : APTR;
  273. PROCEDURE GroupObject(tags : ud.TagItemPtr) : APTR;
  274. PROCEDURE VirtgroupObject(tags : ud.TagItemPtr) : APTR;
  275. PROCEDURE ScrollgroupObject(tags : ud.TagItemPtr) : APTR;
  276. PROCEDURE ScrmodelistObject(tags : ud.TagItemPtr) : APTR;
  277. PROCEDURE VGroup(tags : ud.TagItemPtr) : APTR;
  278. PROCEDURE HGroup(tags : ud.TagItemPtr) : APTR;
  279. PROCEDURE ColGroup(cols : LONGCARD; tags : ud.TagItemPtr) : APTR;
  280. PROCEDURE RowGroup(rows : LONGCARD; tags : ud.TagItemPtr) : APTR;
  281. PROCEDURE PageGroup(tags : ud.TagItemPtr) : APTR;
  282. PROCEDURE VGroupV(tags : ud.TagItemPtr) : APTR;
  283. PROCEDURE HGroupV(tags : ud.TagItemPtr) : APTR;
  284. PROCEDURE ColGroupV(cols : LONGCARD; tags : ud.TagItemPtr) : APTR;
  285. PROCEDURE RowGroupV(rows : LONGCARD; tags : ud.TagItemPtr) : APTR;
  286. PROCEDURE PageGroupV(tags : ud.TagItemPtr) : APTR;
  287. PROCEDURE PopString(tags : ud.TagItemPtr) : APTR;
  288. PROCEDURE PopObject(tags : ud.TagItemPtr) : APTR;
  289. PROCEDURE PopAsl(tags : ud.TagItemPtr) : APTR;
  290. (*$ IF MUI3 *)
  291. PROCEDURE PendisplayObject(tags : ud.TagItemPtr) : APTR ;
  292. PROCEDURE PoppenObject(tags : ud.TagItemPtr) : APTR ;
  293. (*$ ENDIF *)
  294. PROCEDURE Register(tags : ud.TagItemPtr) : APTR;
  295. PROCEDURE MenuStripObject(tags : ud.TagItemPtr) : APTR;
  296. PROCEDURE MenuObject(tags : ud.TagItemPtr) : APTR;
  297. (*$ IF Locale *)
  298. PROCEDURE MenuObjectT(name : StrPtr; tags : ud.TagItemPtr) : APTR;
  299. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  300. PROCEDURE MenuObjectT(name : ARRAY OF CHAR; tags : ud.TagItemPtr) : APTR;
  301. (*$ ENDIF *)
  302. PROCEDURE MenuItemObject(tags : ud.TagItemPtr) : APTR;
  303.  
  304. (*$ IF MUI3 *)
  305. PROCEDURE AboutmuiObject(tags : ud.TagItemPtr) : APTR;
  306. PROCEDURE BalanceObject(tags : ud.TagItemPtr) : APTR ;
  307. PROCEDURE KnobObject(tags : ud.TagItemPtr) : APTR ;
  308. PROCEDURE LevelmeterObject(tags : ud.TagItemPtr) : APTR ;
  309. PROCEDURE NumericbuttonObject(tags : ud.TagItemPtr) : APTR ;
  310. PROCEDURE NumericObject(tags : ud.TagItemPtr) : APTR ;
  311. PROCEDURE PenadjustObject(tags : ud.TagItemPtr) : APTR ;
  312. (*$ ENDIF *)
  313.  
  314. (*
  315. **  MakeID
  316. **  Generate an ID out of a 4-char-string.
  317. **  Use it the as WindowID ! (look in MuiTest for an example!)
  318. *)
  319.  
  320. PROCEDURE MakeID (name : ShortString): LONGINT;
  321.  
  322. (*
  323. **
  324. **  Hook Macros
  325. **
  326. **  Use it the following way :
  327. **      1. Write your Hook-Function :
  328. **          PROCEDURE hookfunc(hook:HookPtr; obj : APTR; args : APTR) : APTR
  329. **              BEGIN
  330. **              ...
  331. **              END hookfunc;
  332. **          Note, that your function needs not to specify registers, but
  333. **          your PROCEDURE must be looking like name(HookPtr, APTR, APTR)!!
  334. **
  335. **      2. Define in your VAR-section a pointer to a Hookrecord :
  336. **          VAR hook    : UtilitiesD.HookPtr;
  337. **
  338. **      3. fill it with MakeHook :
  339. **          MakeHook(hookfunc,hook);
  340. **
  341. **      4. Use it with MUI, as you like, e.g. :
  342. **          DoMethod(button,TAG(buffer,m.mmCallHook,hook,arg1,arg2));
  343. **
  344. *)
  345.  
  346. PROCEDURE MakeHook(entry:HookDef; VAR hook : ud.HookPtr);
  347.  
  348. (*
  349. **
  350. **  Spacing Macros
  351. **
  352. **  (not all from mui.h)
  353. **
  354. *)
  355.  
  356. PROCEDURE HVSpace() : APTR;
  357. PROCEDURE HSpace(x : LONGCARD) : APTR;
  358. PROCEDURE VSpace(x : LONGCARD) : APTR;
  359. PROCEDURE HCenter(obj : APTR) : APTR;
  360. PROCEDURE VCenter(obj : APTR) : APTR;
  361.  
  362. (*
  363. **
  364. **  Popup-Object
  365. **
  366. **
  367. *)
  368.  
  369. PROCEDURE PopButton(img : APTR) : APTR;
  370.  
  371.  
  372.  
  373. (*$ IF MUIObsolete *)
  374.  
  375. (*
  376. **
  377. ** String-Object
  378. **
  379. ** Creates a simple String-Gadget
  380. **
  381. *)
  382.  
  383. (*$ IF Locale *)
  384. PROCEDURE String(contents : StrPtr; maxlen : LONGINT) : APTR;
  385. PROCEDURE KeyString(contents : StrPtr; maxlen : LONGINT; key : CHAR) : APTR;
  386. (*$ ELSE *)
  387. PROCEDURE String(contents : ARRAY OF CHAR; maxlen : LONGINT) : APTR;
  388. PROCEDURE KeyString(contents : ARRAY OF CHAR; maxlen : LONGINT; key : CHAR) : APTR;
  389. (*$ ENDIF *)
  390.  
  391. (*
  392. **
  393. ** Checkmark
  394. **
  395. ** creates a Checkmark Gadget
  396. **
  397. *)
  398.  
  399. PROCEDURE Checkmark(selected : BOOLEAN) : APTR;
  400. PROCEDURE KeyCheckmark(selected : BOOLEAN; key : CHAR) : APTR;
  401.  
  402. (*
  403. **
  404. ** Buttons
  405. **
  406. ** Here the same note : Use small letters for Keybuttons!
  407. **
  408. *)
  409.  
  410. (*$ IF Locale *)
  411. PROCEDURE Simplebutton(name : StrPtr) : APTR;
  412. PROCEDURE Keybutton(name : StrPtr; key : CHAR) : APTR;
  413. (*$ ELSE *)
  414. PROCEDURE Simplebutton(name : ARRAY OF CHAR) : APTR;
  415. PROCEDURE Keybutton(name : ARRAY OF CHAR; key : CHAR) : APTR;
  416. (*$ ENDIF *)
  417.  
  418. (*$ ELSE *) (* if not obsolete *)
  419.  
  420. (*$ IF Locale *)
  421. PROCEDURE Simplebutton(name : StrPtr) : APTR;
  422. (*$ ELSE *)
  423. PROCEDURE Simplebutton(name : ARRAY OF CHAR) : APTR;
  424. (*$ ENDIF *)
  425.  
  426. (*$ ENDIF *) (* MUIObsolete *)
  427.  
  428. (*$ IF MUIObsolete *)
  429.  
  430. (*
  431. **
  432. **  Radio Object
  433. **
  434. *)
  435.  
  436. (*$ IF Locale *)
  437. PROCEDURE Radio(name : StrPtr; array : APTR) : APTR;
  438. (*$ ELSE *)
  439. PROCEDURE Radio(name : ARRAY OF CHAR; array : APTR) : APTR;
  440. (*$ ENDIF *)
  441.  
  442. (*$ IF Locale *)
  443. PROCEDURE KeyRadio(name : StrPtr; array : APTR; key : CHAR) : APTR;
  444. (*$ ELSE *)
  445. PROCEDURE KeyRadio(name : ARRAY OF CHAR; array : APTR; key : CHAR) : APTR;
  446. (*$ ENDIF *)
  447.  
  448.  
  449. (*
  450. **
  451. **  Cycle-Objects
  452. **
  453. *)
  454.  
  455. PROCEDURE Cycle(array : APTR) : APTR;
  456. PROCEDURE KeyCycle(array : APTR; key : CHAR) : APTR;
  457.  
  458. (*
  459. **
  460. **  Slider-Objects
  461. **
  462. *)
  463.  
  464. PROCEDURE Slider(min, max, level : LONGINT; horiz : BOOLEAN) : APTR;
  465. PROCEDURE KeySlider(min, max, level : LONGINT; horiz : BOOLEAN; key : CHAR) : APTR;
  466.  
  467. (*$ ENDIF *) (* MUIObsolete *)
  468.  
  469.  
  470.  
  471. (*
  472. **
  473. ** Label Objects
  474. **
  475. ** The same as in mui.h
  476. **
  477. ** Label()  : create a Label for Objects without a frame
  478. ** Label1() : create a label for Objects with a standard frame (Checkmarks...)
  479. ** Label2() : create a label for Objects with double high frame (String Gadgets...)
  480. **
  481. *)
  482.  
  483. (*$ IF Locale *)
  484. PROCEDURE Label  (label : StrPtr) : APTR;
  485. PROCEDURE Label1 (label : StrPtr) : APTR;
  486. PROCEDURE Label2 (label : StrPtr) : APTR;
  487. PROCEDURE LLabel (label : StrPtr) : APTR;
  488. PROCEDURE LLabel1(label : StrPtr) : APTR;
  489. PROCEDURE LLabel2(label : StrPtr) : APTR;
  490.  
  491. (*$ IF MUI3 *)
  492. PROCEDURE CLabel (label : StrPtr) : APTR ;
  493. PROCEDURE CLabel1(label : StrPtr) : APTR ;
  494. PROCEDURE CLabel2(label : StrPtr) : APTR ;
  495.  
  496. PROCEDURE FreeLabel  (label : StrPtr) : APTR;
  497. PROCEDURE FreeLabel1 (label : StrPtr) : APTR;
  498. PROCEDURE FreeLabel2 (label : StrPtr) : APTR;
  499. PROCEDURE FreeLLabel (label : StrPtr) : APTR;
  500. PROCEDURE FreeLLabel1(label : StrPtr) : APTR;
  501. PROCEDURE FreeLLabel2(label : StrPtr) : APTR;
  502. PROCEDURE FreeCLabel (label : StrPtr) : APTR;
  503. PROCEDURE FreeCLabel1(label : StrPtr) : APTR;
  504. PROCEDURE FreeCLabel2(label : StrPtr) : APTR;
  505. (*$ ENDIF *)
  506.  
  507. PROCEDURE KeyLabel  (label : StrPtr; HiChar : CHAR) : APTR;
  508. PROCEDURE KeyLabel1 (label : StrPtr; HiChar : CHAR) : APTR;
  509. PROCEDURE KeyLabel2 (label : StrPtr; HiChar : CHAR) : APTR;
  510. PROCEDURE KeyLLabel (label : StrPtr; HiChar : CHAR) : APTR;
  511. PROCEDURE KeyLLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  512. PROCEDURE KeyLLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  513.  
  514. (*$ IF MUI3 *)
  515. PROCEDURE FreeKeyLabel  (label : StrPtr; HiChar : CHAR) : APTR;
  516. PROCEDURE FreeKeyLabel1 (label : StrPtr; HiChar : CHAR) : APTR;
  517. PROCEDURE FreeKeyLabel2 (label : StrPtr; HiChar : CHAR) : APTR;
  518. PROCEDURE FreeKeyLLabel (label : StrPtr; HiChar : CHAR) : APTR;
  519. PROCEDURE FreeKeyLLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  520. PROCEDURE FreeKeyLLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  521. PROCEDURE FreeKeyCLabel (label : StrPtr; HiChar : CHAR) : APTR;
  522. PROCEDURE FreeKeyCLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  523. PROCEDURE FreeKeyCLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  524. (*$ ENDIF *)
  525.  
  526. (*$ ELSE *)
  527.  
  528. PROCEDURE Label  (label : ARRAY OF CHAR) : APTR;
  529. PROCEDURE Label1 (label : ARRAY OF CHAR) : APTR;
  530. PROCEDURE Label2 (label : ARRAY OF CHAR) : APTR;
  531. PROCEDURE LLabel (label : ARRAY OF CHAR) : APTR;
  532. PROCEDURE LLabel1(label : ARRAY OF CHAR) : APTR;
  533. PROCEDURE LLabel2(label : ARRAY OF CHAR) : APTR;
  534.  
  535. (*$ IF MUI3 *)
  536. PROCEDURE CLabel (label : ARRAY OF CHAR) : APTR ;
  537. PROCEDURE CLabel1(label : ARRAY OF CHAR) : APTR ;
  538. PROCEDURE CLabel2(label : ARRAY OF CHAR) : APTR ;
  539.  
  540. PROCEDURE FreeLabel  (label : ARRAY OF CHAR) : APTR;
  541. PROCEDURE FreeLabel1 (label : ARRAY OF CHAR) : APTR;
  542. PROCEDURE FreeLabel2 (label : ARRAY OF CHAR) : APTR;
  543. PROCEDURE FreeLLabel (label : ARRAY OF CHAR) : APTR;
  544. PROCEDURE FreeLLabel1(label : ARRAY OF CHAR) : APTR;
  545. PROCEDURE FreeLLabel2(label : ARRAY OF CHAR) : APTR;
  546. PROCEDURE FreeCLabel (label : ARRAY OF CHAR) : APTR;
  547. PROCEDURE FreeCLabel1(label : ARRAY OF CHAR) : APTR;
  548. PROCEDURE FreeCLabel2(label : ARRAY OF CHAR) : APTR;
  549. (*$ ENDIF *)
  550.  
  551. PROCEDURE KeyLabel  (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  552. PROCEDURE KeyLabel1 (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  553. PROCEDURE KeyLabel2 (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  554. PROCEDURE KeyLLabel (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  555. PROCEDURE KeyLLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  556. PROCEDURE KeyLLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  557.  
  558. (*$ IF MUI3 *)
  559. PROCEDURE FreeKeyLabel  (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  560. PROCEDURE FreeKeyLabel1 (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  561. PROCEDURE FreeKeyLabel2 (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  562. PROCEDURE FreeKeyLLabel (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  563. PROCEDURE FreeKeyLLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  564. PROCEDURE FreeKeyLLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  565. PROCEDURE FreeKeyCLabel (label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  566. PROCEDURE FreeKeyCLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  567. PROCEDURE FreeKeyCLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  568. (*$ ENDIF *)
  569.  
  570. (*$ ENDIF *)
  571.  
  572. (*
  573. **
  574. ** Controlling Objects
  575. **
  576. ** Again the same as in mui.h :
  577. **
  578. ** set : set an attribute of an object
  579. ** get : get an attribute of an object
  580. **       didn't work in previous releases :-( (but now!! :-)
  581. **
  582. *)
  583.  
  584. PROCEDURE get(obj : APTR; attr : LONGCARD; store : ADDRESS);
  585. PROCEDURE set(obj : APTR; attr : LONGCARD; value : LONGINT);
  586. PROCEDURE setmutex(obj : APTR; n : LONGINT);
  587. PROCEDURE setcycle(obj : APTR; n : LONGINT);
  588. (*$ IF Locale *)
  589. PROCEDURE setstring(obj : APTR; s : StrPtr);
  590. (*$ ELSE *)
  591. PROCEDURE setstring(obj : APTR; s : ARRAY OF CHAR);
  592. (*$ ENDIF *)
  593. PROCEDURE setcheckmark(obj : APTR; b : BOOLEAN);
  594. PROCEDURE setslider(obj : APTR; l : LONGINT);
  595.  
  596. (*
  597. ** Now some macros which are not part of mui.h (in other words : my own ;-)
  598. **
  599. ** First : NoteClose (app,obj,ID)
  600. **         ----------------------
  601. **         This macro sets up a notification on the close-gadget of a window.
  602. **         if it gets pressed, the app-obj gets back an ID
  603. **         app : the application-object, which will receive the ID
  604. **         obj : the window-object
  605. **         ID  : the ID, which will be send to the app-obj, when the user
  606. **               presses the close-gadget of the window-object specified in
  607. **               obj.
  608. *)
  609.  
  610. PROCEDURE NoteClose(app : APTR;
  611.                     obj : APTR;
  612.                     ID  : LONGINT);
  613.  
  614. (*
  615. **  Notebutton (app,obj,ID)
  616. **  -----------------------
  617. **  Sets up a notification on a button. If it gets pressed, the app-obj
  618. **  receives an ID.
  619. **  app : the app-obj, which will receive the ID.
  620. **  obj : the pointer to the Button-Object (created by Keybutton, etc.)
  621. **  ID  : The ID, which will be send to the app-obj.
  622. **
  623. *)
  624.  
  625. PROCEDURE NoteButton(app : APTR;
  626.                      obj : APTR;
  627.                      ID  : LONGINT);
  628.  
  629. (*
  630. ** RemMember (obj,member)
  631. ** ----------------------
  632. ** The following macro deletes a member from an object
  633. **
  634. ** obj      : The object which holds the child to remove
  635. ** member   : The child which shall be removed
  636. ** ATTENTION: You have to dispose the removed child-objects yourself!
  637. **
  638. *)
  639.  
  640. PROCEDURE RemMember(obj : APTR; member : APTR);
  641.  
  642. (*
  643. ** AddMember (obj,member)
  644. ** ----------------------
  645. ** This macro will add a new child to an group-  or application-object
  646. **
  647. ** obj      : The group or application to which the new object will be added
  648. ** member   : The new child-object which shall be added to obj.
  649. **
  650. *)
  651.  
  652. PROCEDURE AddMember(obj : APTR; member : APTR);
  653.  
  654. END MuiMacros.
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.